﻿Ext.define("App.View.Choferes.FormChofer", {
    extend: "App.Config.Abstract.Form",
    //    title: "Datos de Orden de Trabajo",
    cargarStores: true,
    columns: 2,
    gridPrincipal : null,
    initComponent: function () {
        var me = this;
        me.CargarComponentes();
       
        me.cargarEventos();
        this.callParent(arguments);
        Funciones.BloquearFormularioReadOnly(me , ["ID_CHOFER1"],"botones");
    },
    CargarComponentes: function () {
        var me = this;
        me.store_chofer = Ext.create('App.Store.Choferes.Choferes');

        me.cbx_chofer = Ext.create("App.Config.Componente.ComboAutoBase", {
            fieldLabel: "Buscar Chofer",
            name: "ID_CHOFER1",
            displayField: 'NRO_CHOFER',
            valueField : 'NOMBRE',
            store: me.store_chofer,
            textoTpl : function () { return "Nro Chofer :{NRO_CHOFER} - {NOMBRE} {APELLIDO_PATERNO} {APELLIDO_MATERNO}" }
        });


        me.toolbar = Funciones.CrearMenuBar();
        Funciones.CrearMenu('btn_Crear', 'Crear Chofer', Constantes.ICONO_CREAR, me.EventosForm, me.toolbar, this);
        Funciones.CrearMenu('btn_Editar', 'Modificar Chofer', Constantes.ICONO_EDITAR, me.EventosForm, me.toolbar, this, null, true);
        Funciones.CrearMenu('btn_Baja', 'Baja Chofer', Constantes.ICONO_BAJA, me.EventosForm, me.toolbar, this, null, true);
        me.toolbar.add(me.cbx_chofer);
        me.formImagen = Ext.create('App.View.Socios.Forms', {
            opcion: 'FormImagen',
            colspan: 1,
            width : 240,
            height : 170,
            rowspan: 6,
            //solo cuando el evento esta fuera del formulario se envia el scope
            EventosForm : me.EventosForm,
            scope : me
        });
        me.txt_id = Ext.create("App.Config.Componente.TextFieldBase", {
        name: "ID_CHOFER",
        hidden: true,
        });
        me.num_nro_chofer = Ext.create("App.Config.Componente.NumberFieldBase", {
        fieldLabel: "Nro Chofer",
        name: "NRO_CHOFER",
        width: 240,
        maxLength: 7,
        allowNegative: false,
        allowDecimals: false,
        afterLabelTextTpl: Constantes.REQUERIDO,
        allowBlank: false,
        });
        me.txt_nombre = Ext.create("App.Config.Componente.TextFieldBase", {
        fieldLabel: "Nombre",
        name: "NOMBRE",
        width: 480,
        colspan : 2,
        maxLength: 200,
        afterLabelTextTpl: Constantes.REQUERIDO,
        allowBlank: false,
        });
        me.txt_apellido_paterno = Ext.create("App.Config.Componente.TextFieldBase", {
        fieldLabel: "Apellido Paterno",
        name: "APELLIDO_PATERNO",
        width: 240,
        maxLength: 200,
        afterLabelTextTpl: Constantes.REQUERIDO,
        allowBlank: false,
        });
        me.txt_apellido_materno = Ext.create("App.Config.Componente.TextFieldBase", {
        fieldLabel: "Apellido Materno",
        name: "APELLIDO_MATERNO",
        width: 240,
        maxLength: 200,
        afterLabelTextTpl: Constantes.REQUERIDO,
        allowBlank: false,
        });
        me.num_nro_licencia = Ext.create("App.Config.Componente.NumberFieldBase", {
        fieldLabel: "Nro Licencia",
        name: "NRO_LICENCIA",
        width: 240,
        maxLength: 15,
        allowNegative: false,
        allowDecimals: false,
        });
        me.store_categoria_lic = Ext.create('App.Store.Listas.StoreLista');
        me.store_categoria_lic.setExtraParam('ID_LISTA', Lista.Buscar('CATEGORIA_LIC'));
        me.cbx_categoria_lic = Ext.create("App.Config.Componente.ComboBase", {
        fieldLabel: "Categoria Licencia",
        name: "CATEGORIA_LIC",
        width: 240,
        store : me.store_categoria_lic,
        selectOnFocus: true,
        });
        me.num_ci = Ext.create("App.Config.Componente.NumberFieldBase", {
        fieldLabel: "Carnet Identidad",
        name: "CI",
        width: 240,
        maxLength: 15,
        allowNegative: false,
        allowDecimals: false,
        afterLabelTextTpl: Constantes.REQUERIDO,
        allowBlank: false,
        });

        me.store_expedido = Ext.create('App.Store.Listas.StoreLista');
        me.store_expedido.setExtraParam('ID_LISTA', Lista.Buscar('EXPEDIDO_CI'));
        me.cbx_expedido = Ext.create("App.Config.Componente.ComboBase", {
        fieldLabel: "Expedido",
        name: "EXPEDIDO",
        width: 240,
        store : me.store_expedido,
        selectOnFocus: true,
        afterLabelTextTpl: Constantes.REQUERIDO,
        allowBlank: false,
        });
        me.dat_fecha_nac = Ext.create("App.Config.Componente.DateFieldBase", {
        opcion :"sin fecha",
        fieldLabel: "Fecha Nacimiento",
        name: "FECHA_NAC",
        width: 240,
        afterLabelTextTpl: Constantes.REQUERIDO,
        allowBlank: false,
        });
        me.dat_fecha_ingreso = Ext.create("App.Config.Componente.DateFieldBase", {
        opcion :"sin fecha",
        fieldLabel: "Fecha Ingreso",
        name: "FECHA_INGRESO",
        width: 240,
        afterLabelTextTpl: Constantes.REQUERIDO,
        allowBlank: false,
        });
        me.dat_fecha_baja = Ext.create("App.Config.Componente.DateFieldBase", {
        opcion :"sin fecha",
        fieldLabel: "Fecha Baja",
        name: "FECHA_BAJA",
        width: 240,
       // colspan : 2,
        });
        me.txt_domicilio = Ext.create("App.Config.Componente.TextFieldBase", {
        fieldLabel: "Domicilio",
        name: "DOMICILIO",
        width: 480,
        maxLength: 500,
        colspan : 2,
        afterLabelTextTpl: Constantes.REQUERIDO,
        allowBlank: false,
        });
        me.txt_observacion = Ext.create("App.Config.Componente.TextFieldBase", {
        fieldLabel: "Observacion",
        name: "OBSERVACION",
        width: 480,
        maxLength: 500,
        colspan : 2,
        afterLabelTextTpl: Constantes.REQUERIDO,
        allowBlank: false,
        });
        me.store_estado_civil = Ext.create('App.Store.Listas.StoreLista');
        me.store_estado_civil.setExtraParam('ID_LISTA', Lista.Buscar('ESTADO_CIVIL'));

        me.cbx_estado_civil = Ext.create("App.Config.Componente.ComboBase", {
        fieldLabel: "Estado Civil",
        name: "ESTADO_CIVIL",
        width: 240,
        store : me.store_estado_civil,
        selectOnFocus: true,
        afterLabelTextTpl: Constantes.REQUERIDO,
        allowBlank: false,
        });

        me.store_socio = Ext.create('App.Store.Socios.Socios');

        me.cbx_socio = Ext.create("App.Config.Componente.ComboAutoBase", {
            fieldLabel: "Socio",
            name: "ID_SOCIO",
            displayField: 'NOMBRE',
            valueField : 'ID_SOCIO',
            store: me.store_socio,
            afterLabelTextTpl: Constantes.REQUERIDO,
            allowBlank: false,
            textoTpl : function () { return "Nro Socio :{NRO_SOCIO} - {NOMBRE} {APELLIDO_PATERNO}" }
        });

        me.txt_telefono = Ext.create("App.Config.Componente.TextFieldBase", {
            fieldLabel: "Telefonos",
            name: "TELEFONO",
            width: 480,
            colspan : 2 ,
            maxLength: 50,
        });
        me.txt_celular = Ext.create("App.Config.Componente.TextFieldBase", {
            fieldLabel: "Celular",
            name: "CELULAR",
            width: 240,
            maxLength: 50,
        });
        me.dat_fecha_reg = Ext.create("App.Config.Componente.DateFieldBase", {
        opcion :"sin fecha",
        fieldLabel: "FECHA_REG",
        name: "FECHA_REG",
        width: 240,
        });
        me.txt_id_usr = Ext.create("App.Config.Componente.TextFieldBase", {
        name: "ID_USR",
        hidden: true,
        });
        me.txt_estado = Ext.create("App.Config.Componente.TextFieldBase", {
        fieldLabel: "Estado",
        name: "ESTADO",
        width: 240,
        maxLength: 20,
        });
        me.tbar = me.toolbar;

        me.CargarTabPanel();
        me.items = [
        me.formImagen,
        me.txt_id,
        me.txt_id_usr,
        me.num_id,
        me.num_nro_chofer,
        me.num_ci,
        me.cbx_expedido,
        me.txt_nombre,
        me.txt_apellido_paterno,
        me.txt_apellido_materno,
        me.cbx_estado_civil,
        me.num_nro_licencia,
        me.cbx_categoria_lic,
        me.dat_fecha_nac,
        me.txt_estado,
        me.dat_fecha_ingreso,
        me.dat_fecha_baja,
        me.cbx_socio,
        me.txt_telefono,
        me.txt_celular,
        me.txt_domicilio,
        me.txt_observacion,
        me.tabPanel,
        ];
      
    },
    CargarTabPanel : function(){
        var me = this;
        
        me.toolbarFamiliares = Funciones.CrearMenuBar();
        Funciones.CrearMenu('btn_CrearFamiliar', 'Crear', Constantes.ICONO_CREAR, me.EventosForm, me.toolbarFamiliares, this);
        Funciones.CrearMenu('btn_EditarFamiliar', 'Editar', Constantes.ICONO_EDITAR, me.EventosForm, me.toolbarFamiliares, this);
        Funciones.CrearMenu('btn_BajaFamiliar', 'Baja', Constantes.ICONO_BAJA, me.EventosForm, me.toolbarFamiliares, this);
        me.gridFamiliares = Ext.create("App.View.Socios.Grids",{
            opcion : 'GridFamiliares',
            height : 250,
            fbarmenu : me.toolbarFamiliares
        });

        me.toolbarDocumentos = Funciones.CrearMenuBar();
        Funciones.CrearMenu('btn_CrearDocumento', 'Crear', Constantes.ICONO_CREAR, me.EventosForm, me.toolbarDocumentos, this);
        Funciones.CrearMenu('btn_EditarDocumento', 'Editar', Constantes.ICONO_EDITAR, me.EventosForm, me.toolbarDocumentos, this);
        Funciones.CrearMenu('btn_BajaDocumento', 'Baja', Constantes.ICONO_BAJA, me.EventosForm, me.toolbarDocumentos, this);

        me.gridDocumentos = Ext.create("App.View.Socios.Grids",{
            opcion : 'GridDocumentos',
            height : 250,
            fbarmenu : me.toolbarDocumentos
        });

        me.toolbarDesempeno = Funciones.CrearMenuBar();
        Funciones.CrearMenu('btn_CrearDesempeno', 'Crear', Constantes.ICONO_CREAR, me.EventosForm, me.toolbarDesempeno, this);
        Funciones.CrearMenu('btn_EditarDesempeno', 'Editar', Constantes.ICONO_EDITAR, me.EventosForm, me.toolbarDesempeno, this);
        Funciones.CrearMenu('btn_BajaDesempeno', 'Baja', Constantes.ICONO_BAJA, me.EventosForm, me.toolbarDesempeno, this);
        me.gridDesempeno = Ext.create("App.View.Socios.Grids",{
            opcion : 'GridDesempenos',
            height : 250,
            fbarmenu : me.toolbarDesempeno
        });

        me.toolbarAntecedente = Funciones.CrearMenuBar();
        Funciones.CrearMenu('btn_CrearAntecedente', 'Crear', Constantes.ICONO_CREAR, me.EventosForm, me.toolbarAntecedente, this);
        Funciones.CrearMenu('btn_EditarAntecedente', 'Editar', Constantes.ICONO_EDITAR, me.EventosForm, me.toolbarAntecedente, this);
        Funciones.CrearMenu('btn_BajaAntecedente', 'Baja', Constantes.ICONO_BAJA, me.EventosForm, me.toolbarAntecedente, this);
        me.gridAntecedentes = Ext.create("App.View.Socios.Grids",{
            opcion : 'GridAntecedentes',
            height : 250,
            fbarmenu : me.toolbarAntecedente
        });

        me.tabPanel = Ext.create('Ext.tab.Panel',{
            width: 960,
            height: 300,
            colspan : 4,
            items : [
                me.gridFamiliares,
                me.gridDocumentos,
                me.gridDesempeno,
                me.gridAntecedentes
            ]
        });
    },
   cargarEventos : function(){
        var me = this;
        me.cbx_chofer.on('select',function(cmb,record){
            me.loadRecord(record[0]);
            Funciones.BloquearFormularioReadOnly(me , ["ID_CHOFER1"],"botones");
        });
        me.txt_id.on('change',function(cmb,n,o){
             var disabled = n === "";
            Funciones.DisabledButton('btn_Editar', me.toolbar, disabled);
            Funciones.DisabledButton('btn_Baja', me.toolbar, disabled);
        });
    },
    EventosForm: function (btn) {
        var me = this;
        switch (btn.getItemId()) {
            case "btn_Crear":
                me.BotonesChofer(false);
                me.CrearChofer(true);
                
                break;
            case "btn_Editar":
                me.BotonesChofer(false);
                me.CrearChofer(false);
                
                break;
            case "btn_Crear_imagen":
                me.BotonesChofer(true);
                break;
            case "btn_Detalle":
                me.MostrarFormEgreso(false, true);
                break;
            case "btn_Eliminar":
                me.EliminarRegistro();
                break;
            default:
                Ext.Msg.alert("Aviso", "No Existe el botton");
        }
    },
    CrearChofer : function(bool){
        var me = this;
        if(bool){
            me.getForm().reset();
        }
        Funciones.DesbloquearFormularioReadOnly(me,["FECHA_BAJA","ESTADO"],false);
        me.btn_guardar.on('click',me.GuardarChofer,me);
    },
    BotonesChofer : function(hidden){
        var me = this;
        if(hidden){
            me.btn_guardar.hide() ; 
            me.btn_limpiar.hide() ;
        }
        else{
            me.btn_guardar.show() ; 
            me.btn_limpiar.show() ;
        }
    },
    GuardarChofer : function(){
        var me = this;
        Funciones.AjaxRequestForm("Choferes", "GuardarChofer", me, me, me.gridPrincipal, "Esta Seguro de Guardar Chofer", null, me);
    },
    BloquearFormulario : function(result){
        var me = this;
        me.BotonesChofer(true);
        me.txt_id.setValue(result.id);
        Funciones.BloquearFormularioReadOnly(me , ["ID_CHOFER1"],"botones");
    }
});
